1. The Field of the Invention
The present invention relates to customization of documents for particular clients based on attributes of the clients. More specifically, the present invention relates to server-side scripting in which the decision process regarding how customized content is selected is removed from a server application and is implemented by a decision engine.
2. The Prior State of the Art
As the Internet becomes more accessible and as more information is provided to users on the Internet, the need for customizing information for particular uses has become more critical. Users can retrieve substantially any type of educational, news, entertainment, and general reference information from the Internet, and particularly from the World Wide Web. There is often a need for customizing information for particular users based on any number of criteria, including language, country, client computer hardware, software, and display device properties, level of subscription that the user may have subscribed to, and user profiles, such as age, interest, etc.
Customization of information for users can be performed by Web servers associated with individual Web sites including, for example, Internet portals, search engines, news services, financial sites, and the like. Customization of information can also be performed by servers associated with subscription based information services. Examples of such subscription based information services include value-added “members only” access to information by Internet service providers and intranets. In any of the foregoing examples, customization of information is performed by a server in response to a request by a client for a Web page or another document.
Extensible Style Language (XSL), which is a standard developed by the World Wide Web Consortium (W3C) and Active Server Pages (ASP), which is a standard developed by Microsoft Corporation of Redmond Wash., are two examples of server-side scripting systems whereby customized Web pages can be created at servers for particular clients. In either case, conventional customization is performed by a server application and an associated script selecting appropriate content for a user based on some criteria, such as language of the user. In general, at least three factors are involved in the process of selecting customized content for particular users: (1) attributes or properties specifically associated with the particular user, (2) the range of different versions of the content that are available, and (3) the decision parameters or criteria that select particular content based on the attributes or properties of the users and the range of available content.
Existing customization systems, such as those using ASP or XSL, enable the server application, with knowledge of the decision criteria and client attributes or properties (i.e., the first and third factors), to select from among various versions of content (i.e., the second factor). In XSL and ASP, the various versions of content exist separately from the server application in, for example; a database. The decision criteria and the instructions for obtaining the attributes or properties associated with the client are encoded directly into the source code or scripts of the server applications. Abstracting the content from the server application in this matter allows the content to be altered without requiring the source code or script to be modified. For example, if the customization process involves selecting an Internet page based on the user's language and country, the script may include a series of “if/then” clauses whereby appropriate content is selected based on the value of the language and country properties associated with the client.
In a specific example, a content database associated with the server could include four content files designated as en-US (English in the United States), en-CA (English in Canada), fr-CA (French in Canada), and fr-FR (French in France). The “if/then” clauses in the source code or script of the server application represent the decision criteria by which the appropriate content file is selected. The benefit of abstracting the content from the server application is that particular content file, such as the fr-FR file, can be edited without requiring a change in the source code or script.
The foregoing approaches for customization can be adequate in situations where the decision criteria are relatively simple or in which content is selected based on only one or two client attributes. If a new content file representing a different language and country were to be added in a system using conventional customization techniques, the source code or scripts executed by the server application must be altered to provide access to the new content. In situations where scalability or frequent changes in decision criteria are important or in which content is to be selected based on multiple criteria, conventional customization systems become unmanageable. For instance, multiple portions of the source code or script may need to be individually edited for customization to be adequately performed, which can lead to significant administrator resources being required or the risk of bugs being introduced into the code. In the coming years it is expected that customization of information based on larger number of client attributes and decision criteria will be required in many situations, making the need for extensible customization methods and systems even more important.